package com.coolingme.general;

/**
 * 发起人角色：负责创建一个备忘录，记录自身需要保存的状态；具备回滚功能
 *
 * @author wangyue
 * @date 2020-09-26 17:20
 */
public class Originator {

    /**
     * 内部状态
     */
    private String state;

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    /**
     * 创建一个备忘录
     *
     * @return Memento
     */
    public Memento createMemento() {
        return new Memento(this.state);
    }

    /**
     * 从备忘录中恢复
     *
     * @param memento 被恢复的备忘录
     */
    public void restoreMemento(Memento memento) {
        // 将当期状态设置为 被恢复的备忘录的状态
        this.setState(memento.getState());
    }

}
